package com.cheng.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

/*
 * @Controller : 创建控制器对象，放在springmvc的容器中。
 * */
@Controller
public class MyController {
    /*
     * 处理用户提交的请求，是使用方法来处理的，方法是自定义的、可以有多种类型返回值、多种参数。
     * */

    /*
     * 准备使用doSome方法处理some.do请求
     * @RequestMapping：请求映射，作用把一个请求地址和一个方法绑定在一起。
     *                   一个请求指定一个方法处理。
     *       属性：value(String) 是表示请求的uri地址，值必须是唯一的。
     *               在使用时，推荐一“/”为开头
     *       位置：方法上面（常用的）,类上面
     *       说明：使用RequestMapping修饰的方法叫做控制器方法。类似于service中的doGet,doPost方法
     * */

    /*
     * 返回值：ModelAndView
     *   Model：数据，请求处理完成后，要显示给用户的数据
     *   View：视图，比如jsp等
     * */
    @RequestMapping(value = "/some.do")
    public ModelAndView doSome() {  //doGet()
        //处理some.do请求。相当于service调用处理完了。
        ModelAndView modelAndView = new ModelAndView();
        //添加数据，框架在请求的最后把数据放入到request作用域中
        //request.setAttribute("msg","...");
        modelAndView.addObject("msg", "Welcome use springmvc develop");
        modelAndView.addObject("fun", "execute doSome Method");
        //指定视图的完整路径
        //框架对视图执行的转发操作
        modelAndView.setViewName("/show.jsp");

        return modelAndView;
    }
}
